Real-time tracking for three-dimensional imaging

ABSTRACT

A system, comprising: a stereoscopic camera configured to acquire multiple pairs of images of a surface; a display; and a processor configured to: sequentially acquire multiple image pairs of a surface from the camera; incrementally construct a 3D model from the image pairs concurrently with the sequential image acquisition, by: for each currently acquired image pair, registering the currently acquired image pair to a location on the 3D model, and adding the currently acquired image pair to the 3D model when: a) the registration succeeds and b) a delta of the registered image pair exceeds a threshold; rendering the incremental construction of the 3D model on the display; and concurrently tracking the incremental construction by displaying a graphic indicator that simultaneously indicates: i) the registered location, ii) when the viewing distance is within a focal range, and iii) when the viewing distance is not within a focal range.

BACKGROUND

The invention relates to the field of three-dimensional (3D) imaging.

Conventional cameras transform a three-dimensional view of an objectinto a two dimensional image. Typically, the depth dimension,corresponding to the distance between the focal plane of the capturedimage and the camera, is lost. To include a depth characteristic, someoptical systems use two cameras to capture a pair of stereo images ofthe object, much the way our eyes work. Each image of the pair isacquired from a slightly different viewing angle, and the discrepancybetween the two images is used to measure depth.

The foregoing examples of the related art and limitations relatedtherewith are intended to be illustrative and not exclusive. Otherlimitations of the related art will become apparent to those of skill inthe art upon a reading of the specification and a study of the figures.

SUMMARY

The following embodiments and aspects thereof are described andillustrated in conjunction with systems, tools and methods which aremeant to be exemplary and illustrative, not limiting in scope.

One embodiment provides a system, comprising: a stereoscopic cameraconfigured to acquire multiple pairs of images of a surface; a display;and a processor configured to: sequentially acquire multiple pairs ofstereoscopic images of a surface from the stereoscopic camera;incrementally construct a 3D model of the surface from the image pairsconcurrently with the sequential image acquisition, whereinincrementally constructing comprises: for each currently acquired imagepair, registering the currently acquired image pair to a location on the3D model, and adding the currently acquired image pair to the 3D modelat the registered location when: a) the registration succeeds and b) adelta of the registered image pair exceeds a threshold; rendering theincremental construction of the 3D model on the display; andconcurrently with the sequential image acquisition, tracking theincremental construction of the 3D model by displaying a trackinggraphic indicator on the rendition of the incremental construction ofthe 3D model that simultaneously indicates: i) the registered location,ii) when a viewing distance for the currently acquired image pair iswithin a focal range of the camera, and iii) when the viewing distanceis not within a focal range of the camera.

Another embodiment provides a computer program product comprising anon-transitory computer-readable storage medium having program codeembodied thereon, the program code executable by at least one hardwareprocessor to track the scanning of a surface, by: sequentially acquiringmultiple pairs of stereoscopic images of a surface from a camera;incrementally constructing a 3D model of the surface from the imagepairs concurrently with the sequential image acquisition, whereinincrementally constructing comprises: for each currently acquired imagepair, registering the currently acquired image pair to a location on the3D model, and adding the currently acquired image pair to the 3D modelat the registered location when: a) the registration succeeds and b) adelta of the registered image pair exceeds a threshold; rendering theincremental construction of the 3D model on a display; and concurrently,with the sequential image acquisition, tracking the incrementalconstruction of the 3D model by displaying a tracking graphic indicatoron the rendition of the incremental construction of the 3D model thatsimultaneously indicates: i) the registered location, ii) when theviewing distance is within a focal range of the camera, and iii) whenthe viewing distance is not within a focal range of the camera.

A further embodiment provides a method for tracking the scanning of asurface, comprising: sequentially acquiring multiple pairs ofstereoscopic images of a surface from a camera; incrementallyconstructing a 3D model of the surface from the image pairs concurrentlywith the sequential image acquisition, wherein incrementallyconstructing comprises: for each currently acquired image pair,registering the currently acquired image pair to a location on the 3Dmodel, and adding the currently acquired image pair to the 3D model atthe registered location when: a) the registration succeeds and b) adelta of the registered image pair exceeds a threshold; rendering theincremental construction of the 3D model on a display; and concurrently,with the sequential image acquisition, tracking the incrementalconstruction of the 3D model by displaying a tracking graphic indicatoron the rendition of the incremental construction of the 3D model thatsimultaneously indicates: i) the registered location, ii) when theviewing distance is within a focal range of the camera, and iii) whenthe viewing distance is not within a focal range of the camera.

In some embodiments, the processor is further configured to indicate onthe rendition of the incremental construction a comparison between aviewing distance of the currently acquired image pair and an optimalviewing distance.

In some embodiments, the processor is configured to indicate thecomparison by displaying a distance graphic indicator corresponding tothe viewing distance of the currently acquired image pair superimposedwith the tracking graphic indicator.

In some embodiments, the processor is configured to register thecurrently acquired image pair to a location on the 3D model by:calculating a distance between the camera and the surface as a functionof a disparity of the currently acquired image pair, determining a pointcloud for the currently acquired image pair using the calculateddistance, and mapping multiple key-points in the point cloud to a regionon the 3D model in proximity to a most recently added image pair,determining from the mapping when the registration succeeds and when theregistration fails, calculating the delta as a function of a discrepancybetween the mapped point cloud and the 3D model when the registrationsucceeds, and wherein adding the currently acquired image pair to the 3Dmodel comprises adding the mapped point cloud to the 3D model.

In some embodiments, the processor is configured to determine the pointcloud by: binning the image pair, calculating a low resolutiondistortion from the binned image pair, calculating an average distancefrom the low resolution distortion, using the average distance to selecta distortion correction table corresponding to the average distance,applying the selected distortion table to correct a distortion of theimage pair, and wherein the disparity of the image pair comprises adisparity of the corrected image pair, and wherein determining a pointcloud comprises determining the point cloud from the corrected imagepair.

In some embodiments, the processor is configured to track theincremental construction by indicating on the rendition of theincremental construction when the registration succeeds and when theregistration fails.

In some embodiments, the processor is configured to indicate when theregistration succeeds by displaying the tracking graphic indicator usinga first color, and wherein the processor is configured to indicate whenthe registration fails by displaying the tracking graphic indicatorusing a second color.

In some embodiments, the processor is further configured to, responsiveto determining that the registration fails, execute a relockingprocedure.

In some embodiments, the relocking procedure comprises attempting toregister the most recently acquired image pair in proximity to theregistered location corresponding to a previously added image pair untilthe registration succeeds, wherein the previously added image pair isselected from a group consisting of: the ten most recently added imagepairs, the twenty most recently added image pairs, the thirty mostrecently added image pairs, and the forty most recently added imagepairs.

In some embodiments, the system further comprises a user interface,wherein the processor is configured to receive a user-indicated locationvia the user interface, and wherein the relocking procedure comprisesregistering the most recently acquired image pair in proximity to theuser-indicated location on the 3D model.

In some embodiments, the system further comprises a memory, wherein theprocessor is further configured to retrieve a previously constructed 3Dmodel from the memory, wherein registering the currently acquired imagepair comprises registering to a location on the retrieved previouslyconstructed 3D model, and wherein adding the currently acquired imagepair at the registered location comprises adding the currently acquiredimage pair to the previously constructed 3D model.

In some embodiments, rendering the incremental construction furthercomprises differentiating between the added acquired image pairs and thepreviously constructed 3D model.

In some embodiments, the rendering the incremental construction of the3D model on the display comprises continually adjusting the orientationof the 3D model responsive to detected changes in at least one of ahorizontal and a vertical viewing angle of said stereoscopic camera.

In some embodiments, the processor is configured to calculate at leastone of the horizontal and the vertical viewing angle of saidstereoscopic camera from the distortion correction table.

In addition to the exemplary aspects and embodiments described above,further aspects and embodiments will become apparent by reference to thefigures and by study of the following detailed description.

BRIEF DESCRIPTION OF THE FIGURES

Exemplary embodiments are illustrated in referenced figures. Dimensionsof components and features shown in the figures are generally chosen forconvenience and clarity of presentation and are not necessarily shown toscale. The figures are listed below.

FIGS. 1A-1B, taken together, an optical imaging system in accordancewith an embodiment;

FIGS. 2A-2B illustrate an optical imaging system in accordance withanother embodiment;

FIGS. 3A-3B shows a flowchart of a method for tracking the constructionof a 3D model of a surface from multiple image pairs acquired by any ofthe systems of FIG. 1A-1B, and 2A-2B, in accordance with an embodiment;

FIGS. 4A-4D, show an exemplary implementation of the tracking methoddescribed with respect to FIG. 3A;

FIG. 5 shows a flowchart of a method to register of the currentlyacquired image pair to the 3D model, in accordance with an embodiment;

FIGS. 6A-6B taken together show a flowchart of a method to determine apoint cloud from an image pair, in accordance with an embodiment;

FIG. 7 shows timelines comparing the rates for the image acquisition,registration, and relocking, in accordance with an embodiment;

FIGS. 8A-8E show multiple scanning orientations and correspondingdisplay orientations, in accordance with an embodiment;

FIG. 8F shows a flowchart of a method for adjusting the orientation ofthe display, in accordance with FIGS. 8A-8E;

FIGS. 9A-9B show an implementation of adding newly acquired images to apreviously constructed 3D model, in accordance with an embodiment; and

FIG. 10 shows a conceptual illustration of a system for tracking thescanning of a person's face in real-time, in accordance with anembodiment.

DETAILED DESCRIPTION

A system and method are disclosed herein for implementing real-timetracking for 3D image reconstruction. A stereoscopic camera scans asurface and provides a stream of image pairs that are incrementallyadded to construct a high-resolution three-dimensional (3D) model of thesurface in real-time. The camera may be a hand-held camera, and thus theuser may require feedback to ensure that the camera is positioned at thecorrect distance and orientation from the surface in order to captureuseful, quality images. To provide such feedback, the system tracks thescanning by the camera to the construction of the model in real-time.The construction of the 3D model is displayed to the user whilescanning, and the addition of newly acquired images are indicated inreal-time on the displayed 3D model, allowing the user to see therelative location of the currently scanned surface on the 3D model.

The description below describes a stereoscopic optical system (FIGS.1A-1B, and 2A-2B) for capturing high resolution image pairs, as well asmethods for constructing a 3D model from those image pairs. However, itmay be appreciated that this combination is not meant to be limiting,and the method may use other optical systems for acquiring the imagepairs necessary to construct the model.

Reference is now made to FIGS. 1A-1B which, taken together, show astereoscopic optical imaging system for providing multiple highresolution image pairs for constructing a 3D model, in accordance withan embodiment.

An imaging system 100, such as a camera, is provided to capture multiplestereo images of a 3D object 110, such as skin. Camera 100 is providedwith a front (objective) lens 102 for collecting light reflected offobject 110. The collected light is transmitted through one or moreapertures of a mask 104 to a pair of back lenses 106 a and 106 b, whichfocus the collected light onto one or more sensors 108, such as maycomprise any suitable imaging sensor, for example a charged coupleddevice (CCD) or a complementary metal-oxide semiconductor (CMOS).Optionally, the collected light may be collected at multiple regions ofa single sensor 108, shown in FIG. 1B as two sensor regions 108 a, 108b. Sensor regions 108 a, 108 b may capture multiple pairs of images ofobject 110 in stereo. The captured image pairs may be received by aprocessor 112 which uses the image pairs to construct a 3D model ofobject 110 and store the model in a memory 118. The constructed 3D modelmay be rendered on a display 116.

Referring to FIG. 1B, an exemplary view of sensor 108 having twodistinct regions, 108 a and 108 b is shown. Alternatively, multipleindividual sensors 108 a and 108 b may be provided for each of theimaging systems.

Camera 100 may constitute two imaging systems, each system comprisingone of lenses 106 a and 106 b and one of sensor regions 108 a and 108 b,and sharing common objective 102. The two imaging systems may allowimaging along separate optical paths, each corresponding to a differentone of viewing angles θ1, θ2 off of object 110, thereby allowingsimultaneous stereo image acquisition. Each of lenses 106 a and 106 band sensor regions 108 a and 108 b may be dedicated one of the opticalpaths. This design may allow the overall length of the imaging systemsto be constrained within a predefined size limitation, such as forimplementing within a hand-held device. Alternatively, a separateobjective (not shown) may be provided for each optical path.

The imaging systems may be telecentric in the sample space of object 110such as by positioning mask 104 in the rear focal plane of objective102, allowing to decouple the defocusing and magnification of object110. Optionally, back lenses 106 a and 106 b may operate undertelecentric conditions such as by positioning mask 104 in the frontfocal plane of back lenses 106 a and 106 b. Optionally, the distancebetween mask 104 to back lenses 106 a and 106 b may be less than thefocal length of back lenses 106 a and 106 b to allow the images ofobject 110 to expand on reaching the corners of sensor regions 108 a and108 b. The telecentric imaging described thus may allow for uniformscaled imaging by providing a constant field of view (FOV), and thus,regions of object 110 positioned either above or below the best-focusplane may be imaged at the same size-scale as regions positioned at theoptimum focus. This property may be useful when combining the multipledifferent captured images by processor 112 for performing the 3Dreconstruction of object 110.

Mask 104 may have two or more apertures for transmitting the collectedlight, each aperture corresponding to a different one of the opticalpaths. In one implementation, mask 104 includes a pair of round holes toproduce the desired F-number (F#) at object 110, such as illustrated inFIG. 1A, where F# is understood to be a measure of the amount of lightcollected by imaging system 100.

System 100 may be designed to image object 110 positioned at or near thefront focal plane of the front lens such that sensor regions 108 a and108 b are infinite conjugates. Thus, light reflected off object 110 atangle θ₁ may be focused via objective 102 through one aperture of mask104 and focused via lens 106 a onto sensor region 108 a, and lightreflected off sample 110 at angle θ₂ may be focused via objective 102through a second aperture of mask 104 and focused via lens 106 b ontosensor region 108 b. In this manner, different points on object 110imaged at different angles θ₁, θ₂ may be mapped onto different regionsof the mask plane and different regions of the sensor plane, comprisinga different imaging system for each viewing angle. Similarly, light raysreflecting off a single point of object 110 at different angles θ₁, θ₂may be parallel when they arrive at mask 104, and transmitted,respectively through the different apertures via back lenses 106 a and106 b to sensor regions 108 a and 108 b. In this manner, the two imagingsystems together allow the simultaneous stereo imaging from multipledifferent angular views of object 110. Optionally, each viewing anglemay be imaged sequentially at sensor 108.

The apertures on mask 104 may be positioned symmetrically opposite aboutthe viewing axis of camera 100, allowing two slightly different views ofthe 3D surface to be obtained. The disparity Δ between the two differentcaptured views may be computed and used to determine a depth attributeof the imaged 3D surface. The disparity may be computed as thedifferences between the lateral (X, Y) positions of one or moreidentified features in the two images. A 3D map of the imaged object maybe formed by computing the disparity between each identified feature inthe two captured views. The disparity may be computed using any suitablealgorithm such as are known in the art of stereoscopy. The depth can becalculated using the following equation:

Z=F ₁ +ΔF ₁ ²/(F ₂ b)   (1)

Where F₁ is the front lens (objective) focal length, F₂ is the back lensfocal length, b is the aperture spacing, Δ is the disparity, and Z isthe depth. Values for F₁ may range between 170-180 millimeters (mm)±10%,values for F₂ may range between 25-35 mm±10%, and values for b may rangefrom 15 to 20 mm±10%.

Typically, there is a tradeoff between depth of focus, resolution andlight level. For round apertures this tradeoff may be described by thefollowing equations:

Lateral Resolution (Rayleigh Criterion, Airy Disk Radius)=1.22λ(F ₂ /D_(A))   (2)

Diffraction−Limited Depth of Focus=±2λ(F ₁ /D _(A))²   (3)

Light˜(D _(A) /F ₁)²   (4)

where D_(A) is the diameter of the aperture and λ is the wavelength.

The field of view (FOV) of an imaging system is governed by the diameterD_(L) of objective lens 102, focal length F₁, and F# of the objective,as follows:

FOV≤D _(L) −F ₁ ×α−F ₁ /F#  (5),

where α is the angle between the right and left images as measured inradians.

Since a large FOV typically requires a large objective, resulting in aheavy and bulky optical system, the FOV may be constrained to allowcamera 100 to have a size and weight that are suitable for a handhelddevice. To compensate for a smaller FOV, object 110 may be scanned tocapture many consecutive image pairs. Equation (1) may be applied toeach of the image pairs acquired using the stereo imaging system above,to calculate the depth attribute, or a 3D point cloud, for each imagepair. A registration algorithm may be used to add all the calculated 3Dpoint clouds together and form a large 3D point cloud representing thescanned region.

Any noise of a single 3D point cloud may be accumulated in theregistration process, resulting in a significant noise level for thelarge 3D point cloud. To limit the sensitivity to noise, camera 100 maybe designed such that the angle α between the left and right images (theimage pairs acquired in stereo), may be substantially small, such as˜6°. Alternatively, the angle α between the left and right images mayrange from 5.5° and 6.5°, or 5° and 7°, or 4° and 8°. Thus, the featuresin the left image and right image may be very similar, allowing a highdegree of accuracy in discerning features along the lateral, x, andvertical, y axes. However, there may remain a non-negligible distortionalong the depth, z axis.

Reference is now made to FIGS. 2A-2B which illustrate an optical imagingsystem 200 having a corrective lens to reduce optical distortion, inaccordance with another embodiment.

Distortion is an optical aberration which incorrectly maps a point onthe real object to the image space. This incorrect mapping of points mayhave a substantial effect on 3D point clouds. Following Eq. (1), therelationship dz between z (depth) and disparity (A) in a system with arelatively small angle between left and right images, such as ˜6° (60)is dz˜30Δ. In such a system, even very low distortion, such as tenths ofa percent, may have a non-negligible effect on the large 3D point cloud.To avoid such errors, telecentric optical imaging system 200 may captureimages with very low distortion, such as <0.5%. Additionally,telecentric optical imaging system 200 provides a constant FOV with auniform number of pixels.

The distortion in an optical system is also a function of depth; when infocus, an optical system may acquire images with very low distortion,however images acquired far from focus may suffer from high distortion.To address this problem, a lens 214 may be provided to reduce thedistortion of the optical system and change very gradually along theentire depth of focus, resulting in a relatively low distortion alongthe depth of focus. By reducing the distortion for each captured image,the cumulative error for the 3D point cloud resulting from theregistration may be reduced significantly.

FIG. 2A shows a single aperture system for imaging object 110. Lightreflected off object 110 is collected by objective 102. The collectedlight is focused by corrective lens 214 and transmitted through theaperture of mask 104, via one or more back lenses 106 onto sensor 108.

The system of FIG. 2B is substantially similar to that of FIGS. 1A-1Bhaving two imaging systems for two optical paths each corresponding to adifferent viewing angle of object 110, with the notable difference thatcorrective lens 214 is positioned between objective 102 and the apertureplane of mask 104. Lens 102 coupled with lens 214 may reduce distortionof images acquired using system 200. Light reflected off object 110 intwo separate optical paths is collected by objective 102 coupled withlens 214, focused onto mask 104, and transmitted through multipleaperture pairs of mask 104 via back lenses 106 a and 106 b onto sensorregions 108 a and 108 b, respectively.

The overall length of the system 200 of FIG. 2A may range, for example,from 110 to 130 mm. In one embodiment, the overall length isapproximately 120 mm±10%. The maximum diameter of system 200 may range,for example, from 60 to 80 mm, and in one embodiment may beapproximately 70 mm±10%. The average distortion may range from 0.4% to0.6% and in one embodiment may be approximately 0.5%. The FOV may range,for example, from 30×30 mm to 60×35 mm, and in one embodiment, may beapproximately 60×30 mm±10%. The depth of focus may range, for example,from 2 mm to 35 mm, and in one embodiment, may be approximately 20mm±10%. The 3D resolution may range, for example, from 80 to 100microns, and in one embodiment, may be 100 microns±10%.

Sensor regions 108 a and 108 b configured with either of systems 100 or200 may acquire multiple image pairs and transmit them for processing byprocessor 112. The image acquisition rate and transmittal rate may rangefrom 5-10 Hertz (Hz)±10%, or alternatively from 6-12 Hz±10%, or 7-15Hz±10%.

Reference is now made to FIG. 3A which shows a flowchart of a method forthe real-time tracking of the scanning of a 3D surface using the systemof either of systems 100 or 200, in accordance with an embodiment. Theimage construction and tracking be implemented by processor 112operative with memory 118 and display 116.

Multiple pairs of stereoscopic images of a surface may be acquiredsequentially from a camera (Step 300). A 3D model of the surface may beconstructed incrementally from the image pairs concurrently with thesequential image acquisition (Step 302). The incremental constructionmay include performing Steps 304-306, for each currently acquired imagepair: the currently acquired image pair may be registered to a locationon the 3D model (Step 304), details of which are provided below withrespect to FIG. 5; if the registration succeeds and if a delta betweenthe registered image pair exceeds a predefined threshold, the currentlyacquired image pair may be added to the 3D model at the registeredlocation (Step 306), such as by performing Step 512 of FIG. 5. Theincremental construction of the 3D model may be rendered on a display(Step 308). The incremental construction of the 3D model may be trackedconcurrently with the sequential image acquisition (Step 310), such asby displaying a graphic indicator on the rendition of the incrementalconstruction of the 3D model. The graphic indicator may simultaneouslyindicate on the rendered 3D model both the registered location, and whenthe current camera-to surface viewing distance is within a focal rangeof the camera, and when the current camera-to surface viewing distanceis not within a focal range of the camera. This allows the user toobserve the scanned surface region using the 3D model as a reference,allowing him to maneuver the camera according to the regions of themodel that require additional scanning. It also provides the user withfeedback that the images that are currently being scanned are in focusand are thus registered and added to the model.

The tracking indicator may have multiple different attributes toindicate various system parameters, allowing the user to adjust theposition of the camera and/or speed of acquisition in response to theindications. For example, the tracking indicator may be displayed as aspot indicating to the user the viewing distance between the camera andthe surface for the most recently registered image pair. Optionally, asthe user moves the camera closer to the surface to acquire images, thetracking indicator will be smaller. Conversely, as the camera is movedfurther from the surface to acquire images, the tracking indicator willbe larger. Thus the user may follow the position of the spot on therendered model to view where on the model the currently acquired imagesare being added and registered, and the tracking indicator on the spotmay indicate the distance between the camera and the surface. Thistracking feedback may be provided in real-time while scanning thesurface, allowing the user to adjust any of the scanning region and thedistance to the surface, and the scanning speed, accordingly, andacquire well-focused images from relevant regions of the surface.

Alternatively, the size of the tracking indicator ‘spot’ may beconstant, indicating where on the model the currently acquired imagepair is registered, and added. A separate distance indicator may bedisplayed to indicate to the user a comparison between the currentviewing distance and optimal viewing distance for the imaging system, asfollows:

a) When the current distance between the camera and the surface isoutside an optimal focal range but still within an image registrationrange and thus the acquired images are of a sufficient quality to allowusing them for constructing the 3D model, the distance indicator may bedisplayed to warn the user that distance is near the focus threshold,beyond which registration will fail. The focus threshold may be apredetermined property of the imaging system. The distance indicator mayindicate a comparison between the current viewing distance and theoptimal distance. For example, the size of the tracking indicator maycorrespond to an optimal focal distance, and the size of the distanceindicator may correspond to the current viewing distance. The twoindicators may be superimposed in a manner to view both simultaneously,i.e. one of the indicators may be transparent. Thus, if the distanceindicator is larger than the tracking indicator, the camera is too farand the user is warned not to increase the distance lest registrationwill fail, and if the distance indicator is smaller than the trackingindicator, the camera too close and the user is warned not to decreasethe distance lest registration will fail.

b) When the current distance between the camera and the surface iswithin the optimal focal range, the tracking indicator may be displayedusing the ‘successful registration color’, (i.e. green) and may bedisplayed alone, without the distance indicator, indicating to the userthat the images acquired at the current distance are within the optimalfocal range and are being successfully registered.

c) When the current distance between the camera and the surface isoutside the focus threshold of the optimal focal range, the trackingindicator may be displayed using the ‘failed registration color’, (i.e.red) and may be displayed alone, without the distance indicator,indicating to the user that the images acquired at the current distanceare not in focus, and thus are not being registered, and the system must‘relock’ the registration.

Thus, the combination of the tracking and distance indicators may allowthe user to adjust the current viewing distance in real-time whilescanning to remain within a range of the optimal focal distance andacquire quality, focused images.

The graphic tracking indicator may indicate when the registrationsucceeds and thus, the images acquired from the scanning are being addedto the model, and conversely when the registration fails. For example,successful registration may be indicated by displaying the indicator inone color, such as green, and failed registration may be indicated bythe displaying the indicator in a different color, such as red. A red‘failed registration’ indication may allow the user to maneuver thecamera while executing a relocking of the image acquisition to theconstruction of the 3D model, details of which are provided below withrespect to FIG. 4. Optionally, the user may indicate a new registrationlocation on the 3D model, and may adjust the distance of the camera tofocus on the new registration location. The tracking may follow thisadjustment providing the user with feedback to successfully relock.

Reference is now made to FIGS. 4A-4D, which show an exemplaryimplementation of the tracking method described above with respect toFIG. 3A.

Referring to FIG. 4A, a tracking indicator 402 is shown overlaid on a 3Dmodel 400. Indicator 402 is shown as a spot (green) corresponding to anoptimal focal distance between the camera and the surface, and Theposition of indicator 402 indicates the location on the model of themost recently registered image pair. The color of indicator 402 (green)indicates successful registration of the acquired image stream, and thusthe distance between the camera and surface is within the focal range ofthe imaging system. The absence of the additional distance graphicindicator indicates that the distance is within a predefined range ofthe optimal focal distance.

Referring to FIG. 4B, two graphic indicators: distance indicator 404 andtracking indicator 406 are shown superimposed with each other. The sizeof distance indictor 404 (outer dashed ring) is scaled to correspond tothe camera-to-surface distance for the most recently acquired imagepair, and the size of tracking indicator 406 (inner spot) is constant,indicating to the user that the current scanning distance exceeds theoptimal scanning distance. However, the color of indicators 404 and 406(green) show that the camera is still within a threshold range of theoptimal distance that allows the images acquired from the scanning to beregistered. This feedback warns the user not to increase the distanceelse the registration will fail, and allows the user to adjust thedistance to conform with the optimal range.

Referring to FIG. 4C, two graphic indicators: tracking indicator 408 anddistance indicator 410 are shown superimposed with each other. The sizeof distance indictor 410 (inner dashed ring) is scaled to correspond tothe camera-to-surface distance for the most recently acquired imagepair, and the size of indicator 408 (outer spot) is constant, indicatingto the user that the distance is smaller than the optical focaldistance. As above, the color attribute of indicators 408 and 410(green) indicates that the distance is still within a threshold range ofthe optimal focal distance, and thus the images acquired from thescanning are being registered successfully. This feedback warns the usernot to decrease the distance else the registration will fail, and allowsadjusting the distance accordingly.

Referring to FIG. 4D, the color of indicator 412 (red) indicates thatthe camera is outside the threshold focus range and the acquired imagesare not being registered. The color attribute of indicator 412 may besubstantially different than the color attributes of indicators 402-410of FIGS. 4A-4C, to give a clear indication that the image registrationat the current orientation and/or distance failed.

It may be appreciated that the specific graphical shapes and/or colorsfor indicators 402-412 are exemplary implementations only, and othersuitable graphical depictions may be used. Some possible thresholdvalues are 20 mm, or 15 mm, or 25 mm. The color attribute of indicators402-410 in FIGS. 6A-6C may be the same, to indicate successful trackingfor all of these scenarios.

Reference is now made to FIG. 5 which shows a flowchart of method toregister of the currently acquired image pair to the 3D model, inaccordance with an embodiment. A distance between the camera and thesurface may be calculated as a function of a disparity of the currentlyacquired image pair (Step 500), for example, by applying Eq. 1 above. Apoint cloud for the currently acquired image pair may be determinedusing the calculated distance (Step 502). For example, the point cloudmay be determined using the method described in greater detail belowwith respect to FIGS. 6A-6B.

Multiple key points in the point cloud of the currently acquired imagepair may determined, and then mapped to corresponding multiple keypoints of a point cloud of the 3D model (Step 504). The mapping may beused to determine if the registration succeeds or if the registrationfails (Step 506). A more detailed description of Step 506 is given bysteps 610-614 of FIGS. 6B. If the registration succeeds, indicate thesuccess (Step 508), and calculate the delta between the registered imagepair and the 3D model, for example as a function of a discrepancybetween the mapped point cloud and the 3D model (Step 510). If the deltais significant and exceeds the threshold, the mapped point cloud may beadded the to the 3D model (Step 512), corresponding to the adding step306 of FIG. 3A.

Reference is now made to FIGS. 6A-6B which shows a flowchart of a methodto register a point cloud of a currently-acquired image pair to apreviously-calculated point cloud, in accordance with an embodiment.

A received high-resolution pair of images may be binned, for example bycombining the pixel values in a 2×2 or 3×3 or 4×4 or 5×5 or 6×6 binningoperation and a low resolution distortion may be calculated from thebinned images (Step 600).

An average distance between the camera and the 3D surface may becalculated using the low resolution calculation of the distortion (Step602).

The average distance may be used to select a distortion correction tablecorresponding to the average distance (Step 604). Optionally, thedistortion table may be selected from multiple distortion correctiontables stored in memory 118.

The selected distortion table may be applied to correct the distortionof the image pair (Step 606). The distortion corrected high-resolutionimage pair may be used to calculate a disparity of the corrected imagepair, and may be used for the disparity value of Step 502 of FIG. 5.

Additionally, the distortion corrected images may be used to calculatethe angle and the distance between the camera and the surface, as wellas determining the 3D point cloud of Step 502 of FIG. 5, as defined byEq. 1 (Step 608). The angle may be used to reorient the model, asdescribed below with respect to FIG. 8.

Multiple key points in the 3D point cloud may be determined (Step 610).

The key points may be mapped to corresponding reference key-pointsidentified in the point cloud of the 3D model, such as may be located inproximity to a region corresponding to a previously successfully addedimage pair (Step 612). This yields multiple pairs of key points, eachpair having a key point from the current point cloud and the previouspoint cloud (of the 3D model).

Then, a registration transformation matrix is calculated using thematched pairs of key-points, to correctly register (by rotation,distortion, etc.) the two point clouds (Step 614).

If the registration is successful, the method may continue to Step 508of FIG. 5. If the registration is not successful, the indicator mayindicate the registration failure (Step 622), providing the user withfeedback such that he can reposition the camera and acquire imagesstarting from the location indicated by the indicator. Repositioningthus may allow the point clouds determined from subsequently acquiredimage pairs to be registered and added to the 3D model. For example, ifthe distance between the camera and surface is greater than a predefineddistance, and/or if the acquired images are out of focus, and/or theuser moved the camera too quickly across the surface, registration ofthe acquired images may fail, and the indication of such allows the userto maneuver the camera to allow relocking the image acquisition onto the3D model construction. Thus, responsive to the registration failure,subsequent image acquisition may be re-locked onto the 3D model byattempting to register the most recently acquired image pair at alocation on the 3D model that is in proximity to a locationcorresponding to a previously added image pair, using the method of FIG.5, until the registration succeeds (Step 624). For example, registrationmay be attempted with respect to previously registered and/or addedimages, such as going back to the tenth, twentieth, thirtieth, orfortieth most recently added image pairs, allowing to account for thecamera's motion away from the most recently added image pair. Thus, thepreviously added image pair may be selected from a group consisting of:the ten most recently added image pairs, or the twenty most recentlyadded image pairs, or the thirty most recently added image pairs, or theforty most recently added image pairs.

Since the registration algorithm may require more processing for eachframe than the tracking algorithm, registering every acquired image pairmay result in latency that causes a discrepancy between the restoredposition on the 3D model and the location of the most recently acquiredimage pair. To address this, the registration algorithm may skip oversome of the acquired images, and use the most recently acquired imagepair to relock the image acquisition onto the 3D model. For example,images that are very similar to the registered region, and providelittle new information and thus have a small delta with the registeredregion, may be discarded.

Referring to FIG. 7, a time line 700, shown twice for the purpose ofclarity, is shown comparing the rates for the image acquisition,registration, and relocking. The image acquisition rate is indicated bythe combination of all the arrows, and may remain constant. During the‘attempt relocking’ period 706, unless the user has indicated otherwise,the processor attempts to register incoming images to a constructedportion of the 3D model. Registration may be attempted with respect topreviously added images, such as the tenth, twentieth, thirtieth mostrecently added image, and the like. Alternatively, the processorattempts to register the incoming images in proximity to a location onthe 3D model indicated by the user. Relocking may require substantialcomputational resources, and thus the rate for the attempted relocking,indicated by the thick arrows (702), may be slower than the imageacquisition rate. After a failed attempt at relocking, the processoruses the most recently acquired image pair for the subsequent attempt,and discards any images acquired in the interim. In the example shown,registration is attempted for the first, fourth, and ninth acquiredimage pair, thus the relocking rate may not necessarily be uniform.After attempting to register the first image, corresponding to the first(bold) arrow 702 from the left, the acquired images, corresponding tothe 2^(nd) and 3^(rd) arrows from the left (thin solid arrows 710) arediscarded, and the processor attempts to register the 4^(th) acquiredimage pair, corresponding to the second bold arrow 702 from the left.Similarly, due to latency in attempting to match the 4^(th) pair ofimages, the 6^(th), 7^(th) and 8^(th) images (thin solid arrows 710) arediscarded as well. Finally, the processor succeeds in registering the9^(th) incoming image pair, as indicated by the ‘X’ under the 3^(rd)bold arrow from the left.

Once the relocking succeeds, the registered period begins, 708.Registration typically requires less computational resources thanrelocking, since the processor matches the incoming images onto asmaller region of the 3D model. Thus the image acquisition rate may notexceed the registration rate, allowing each incoming image to beregistered. However, to conserve computational resources, optionallyonly images with significant information are added to the 3D model. Thenewly registered images are compared to the 3D model, and thediscrepancy between them is determined. If the discrepancy is less thana threshold value, the images are discarded, as indicated by the thindashed arrows 712. However, if the discrepancy is greater than thethreshold value, and therefore the images contain a significant amountof new information, the images may be added to the 3D model, asindicated by the medium weight arrows 704. Values for the discrepancythreshold may range from 5% to 15%, or from 8% to 12%, or approximately10%. The image discard rate may be non-uniform, for example, if the userlingers over a region for an extended period, many acquired images maybe discarded, and if the user moves the camera over a region that wasnot previously scanned, few if any images may be discarded.

Reference is now made to FIGS. 8A-8E, which illustrate multiple scanningorientations and corresponding display orientations, in accordance withan embodiment. As the user manually maneuvers the camera about the 3Dsurface and changes the vertical and/or horizontal viewing angles, theperspective of the displayed 3D model may be adjusted accordingly(“reoriented”) such that the currently registered region of the 3D modelis prominently displayed, for example displayed at approximately thecenter of the screen and/or at approximately the center of a displayarea of the model. Optionally, to prevent the display from jumping ortwitching in response to every change in the viewing angles, the displayperspective may be adjusted conditional on the change in either of thevertical or horizontal viewing angles exceeding a threshold.Additionally or alternatively, smoothing may be applied to prevent suchjumping or twitching, by relaxing sudden movements.

Referring to FIG. 8A, an initial head-on, front perspective display 800is shown, corresponding to the scanning of a patient's face 802 usingcamera 100 from a head-on front viewing angle. The currently scannedregion (nose), indicated by white circle 802 a is indicated on thedisplayed 3D model 800 at the location 800 a corresponding to theregistration of the acquired images. In this case, the currentlyregistered location 800 a corresponding to the currently scanned region802 a is displayed at the center of the displayed 3D model 800.

Referring to FIG. 8B, as the user maneuvers camera 100 around to theside of the patient's face 802, the camera viewing angle transitionsfrom a front view to a side, profile view 804, to acquire images of thepatient's cheek 802 b. However, the display of the 3D model 800 has notbeen adjusted, and the perspective remains frontal. As a result, thelocation on the 3D model where the currently acquired images areregistered is not displayed prominently at the center of the display,but rather over to the side, as indicated by the circle 800 bcorresponding to scanning region 802 b.

FIGS. 8C-8D shows the change in the horizontal viewing angle 806 and thevertical viewing angle 808, respectively, when moving from the frontfacing orientation of FIG. 8A to the side facing orientation of FIG. 8B.These angles may be measured by either calculating them using theregistration locations of the 3D model, or by including a compass orgyroscope with camera 100, or any other suitable means. When the changein the viewing angles exceeds a threshold value, the perspective of thedisplay may be adjusted such that the indication on the 3D model of thecurrently scanned region is prominently displayed for the user'sconvenience.

Referring to FIG. 8E, the orientation of the displayed 3D model 808 isshown adjusted to the profile view instead of the frontal view 800 shownin FIG. 8A, such that indication 800 b, corresponding to the currentlyregistered location, is located at the center of the displayed model800.

Reference is now made to FIG. 8F which shows a flowchart of a method foradjusting the orientation of the display, in accordance with FIGS.8A-8E. During scanning, the orientation of the displayed 3D model may becontinually adjusted to ensure that the graphic indication of thecurrently registered location on the 3D model is included in thedisplayed rendition. The horizontal and vertical angles between theviewer viewport and the point cloud viewport may be computed (Step 810).The computed horizontal and vertical angles may be compared to athreshold (Step 812). If the horizontal angle exceeds the threshold, thehorizontal angle corresponding to the perspective of the display isadjusted (Step 814). If the vertical angle exceeds the threshold, thevertical angle corresponding to the perspective of the display isadjusted (Step 816).

The re-locking and real-time tracking algorithms described above may beused to track a current scan position onto a previously constructed 3Dmodel, and thus add newly acquired images to the at leastpartially-constructed 3D model. The graphic indicator may be used toallow the user to navigate the focus of the camera to regions of thesurface that had already been included in the previously scanned 3Dmodel, such that newly acquired images can be registered to a locationon the retrieved previously constructed 3D model. Once registered, thecurrently acquired image pair may be added to the previously constructed3D model at the registered location, as described above. The renditionof the incremental construction may differentiate between the newlyadded acquired image pairs and the previously constructed 3D model. Forexample, the newly scanned regions may be rendered in a different color.

Reference is now made to FIGS. 9A-9B which show an implementation ofadding newly acquired images to a previously constructed 3D model. FIG.9A shows a partially constructed 3D model 900 of an individual's facethat was stored in a memory 118 of processor 112 and opened for viewingon display 116. The user may indicate a region on the 3D model forrelocking the image acquisition via interface 120 as described above.Once relocked, image registration may commence as indicated by graphicindicator 902 using the methods described above, to add newly acquiredimage pairs to the retrieved 3D model. The newly constructed portion ofthe 3D model 904, corresponding to the newly acquired images, may berendered in manner to differentiate it from the 3D model that wasretrieved from memory 118, such as by rendering the new portion 904 in adifferent color, shown for illustrative purposes only in grey. Thisallows the user to track the scanning and renewed construction of the 3Dmodel relative to the previously constructed the 3D model.

Reference is now made to FIG. 10, which shows a conceptual illustrationof a system for tracking the scanning of a person's face in real-time,in accordance with an embodiment. A hand held scanning device 1000, suchas any of cameras 100 or 200 above, scans a person's face 1002. Thelocation of the scanning is indicated by the circle 1004 surrounding thecorner of the person's mouth. The images acquired from the scanning areused by a processor (not shown) configured with device 1000 to constructa 3D model 1006 of the person's face. The construction of the model isrendered in real-time on display 116. While displaying the construction,the location of the currently scanned region is indicated on therendition of the construction of the 3D model 1006 as circular indicator402. Thus, the user of device 1000 receives real-time feedback withrespect to the progress of the scan and can observe and track theconstruction of the model while scanning, allowing the user to adjustthe speed and location of the scanning, accordingly. As can be seen fromFIG. 10, the user has finished scanning the person's cheek, the 3D model1006 of which is constructed and rendered on display 116. The user cannow move the camera to the mouth and nose regions of the person's faceto continue the 3D model construction, which will be rendered inreal-time on display 116, with indicator 402 tracking the scanned regionon the rendered model.

Reference is now made to FIG. 3B which is a flowchart of a method forimplementing the real-time tracking of the scanning of a 3D surface ofStep 310 of FIG. 3A using graphical indicators, in accordance with anembodiment.

A size attribute of a graphical distance indicator may be set toindicate the distance between the stereoscopic camera and the surface,such as by setting the size attribute to correspond to the currentcamera-to-surface viewing distance for the most recently registeredimage pair; a shape, pattern, or other visual attribute of the indicatormay be set to indicate a comparison between the current viewing distanceand the optimal viewing distance; and a color attribute of the indicatormay be set to indicate the success of the registration.

The distance between the camera and the surface, such as calculated inStep 500 of FIG. 5, may be compared to an optimal camera focus distance(Step 312). If the distance is not within the threshold of the optimalfocal distance, the color, shape, and size attributes of the indicatormay be set to indicate a registration failure (Step 314). If thedistance is within the threshold of the optimal focal distance, thecolor attribute of the indicator may be set to indicate a successfulregistration (Step 316). If the distance is within the threshold but isgreater than the optimal distance, the shape attribute may be set toindicate a ‘further than optimal distance’ indication (Step 318). If thedistance is within the threshold but is smaller than the optimaldistance, the shape attribute may be set to indicate a ‘nearer thanoptimal distance’ indication (Step 320). The set indicator may beoverlaid on the rendered 3D model at a location corresponding to themost recently successfully registered image pair (Step 322).Additionally, or alternatively, any of the indicators may comprisesounding an alert, and/or flashing a light.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a non-transitory, tangibledevice that can retain and store instructions for use by an instructionexecution device. The computer readable storage medium may be, forexample, but is not limited to, an electronic storage device, a magneticstorage device, an optical storage device, an electromagnetic storagedevice, a semiconductor storage device, or any suitable combination ofthe foregoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, or any suitable combination of the foregoing. A computerreadable storage medium, as used herein, is not to be construed as beingtransitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention may be described herein with referenceto flowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

1. A system, comprising: a stereoscopic camera configured to acquiremultiple pairs of images of a surface; a display; and a processorconfigured to: sequentially acquire multiple pairs of stereoscopicimages of a surface from the stereoscopic camera; incrementallyconstruct a 3D model of the surface from the image pairs concurrentlywith the sequential image acquisition, wherein incrementallyconstructing comprises: for each currently acquired image pair,registering the currently acquired image pair to a location on the 3Dmodel, and adding the currently acquired image pair to the 3D model atthe registered location when: a) the registration succeeds and b) adelta of the registered image pair exceeds a threshold; rendering theincremental construction of the 3D model on the display; andconcurrently with the sequential image acquisition, tracking theincremental construction of the 3D model by displaying a trackinggraphic indicator on the rendition of the incremental construction ofthe 3D model that simultaneously indicates: i) the registered location,ii) when a viewing distance for the currently acquired image pair iswithin a focal range of the camera, and iii) when the viewing distanceis not within a focal range of the camera.
 2. The system of claim 1,wherein the processor is further configured to indicate on the renditionof the incremental construction a comparison between a viewing distanceof the currently acquired image pair and an optimal viewing distance. 3.The system of claim 2, wherein the processor is configured to indicatethe comparison by displaying a distance graphic indicator correspondingto the viewing distance of the currently acquired image pairsuperimposed with the tracking graphic indicator.
 4. The systemaccording to claim 1, wherein the processor is configured to registerthe currently acquired image pair to a location on the 3D model by:calculating a distance between the camera and the surface as a functionof a disparity of the currently acquired image pair, determining a pointcloud for the currently acquired image pair using the calculateddistance, and mapping multiple key-points in the point cloud to a regionon the 3D model in proximity to a most recently added image pair,determining from the mapping when the registration succeeds and when theregistration fails, calculating the delta as a function of a discrepancybetween the mapped point cloud and the 3D model when the registrationsucceeds, and wherein adding the currently acquired image pair to the 3Dmodel comprises adding the mapped point cloud to the 3D model.
 5. Thesystem of claim 4 wherein the processor is configured to determine thepoint cloud by: binning the image pair, calculating a low resolutiondistortion from the binned image pair, calculating an average distancefrom the low resolution distortion, using the average distance to selecta distortion correction table corresponding to the average distance,applying the selected distortion table to correct a distortion of theimage pair, and wherein the disparity of the image pair comprises adisparity of the corrected image pair, and wherein determining a pointcloud comprises determining the point cloud from the corrected imagepair.
 6. The system of claim 4, wherein the processor is configured totrack the incremental construction by indicating on the rendition of theincremental construction when the registration succeeds and when theregistration fails.
 7. The system of claim 6, wherein the processor isconfigured to indicate when the registration succeeds by displaying thetracking graphic indicator using a first color, and wherein theprocessor is configured to indicate when the registration fails bydisplaying the tracking graphic indicator using a second color.
 8. Thesystem of claim 4, wherein the processor is further configured to,responsive to determining that the registration fails, execute arelocking procedure.
 9. The system of claim 8, wherein the relockingprocedure comprises attempting to register the most recently acquiredimage pair in proximity to the registered location corresponding to apreviously added image pair until the registration succeeds, wherein thepreviously added image pair is selected from a group consisting of: theten most recently added image pairs, the twenty most recently addedimage pairs, the thirty most recently added image pairs, and the fortymost recently added image pairs.
 10. The system of claim 8, furthercomprising a user interface, wherein the processor is configured toreceive a user-indicated location via the user interface, and whereinthe relocking procedure comprises registering the most recently acquiredimage pair in proximity to the user-indicated location on the 3D model.11. The system according to claim 1, further comprising a memory,wherein the processor is further configured to retrieve a previouslyconstructed 3D model from the memory, wherein registering the currentlyacquired image pair comprises registering to a location on the retrievedpreviously constructed 3D model, and wherein adding the currentlyacquired image pair at the registered location comprises adding thecurrently acquired image pair to the previously constructed 3D model.12. The system of claim 11, wherein rendering the incrementalconstruction further comprises differentiating between the addedacquired image pairs and the previously constructed 3D model.
 13. Thesystem of claim 5, wherein the rendering the incremental construction ofthe 3D model on the display comprises continually adjusting theorientation of the 3D model responsive to detected changes in at leastone of a horizontal and a vertical viewing angle of said stereoscopiccamera.
 14. The system of claim 13, wherein the processor is configuredto calculate at least one of the horizontal and the vertical viewingangle of said stereoscopic camera from the distortion correction table.15-28. (canceled)
 29. A method for tracking the scanning of a surface,comprising: sequentially acquiring multiple pairs of stereoscopic imagesof a surface from a camera; incrementally constructing a 3D model of thesurface from the image pairs concurrently with the sequential imageacquisition, wherein incrementally constructing comprises: for eachcurrently acquired image pair, registering the currently acquired imagepair to a location on the 3D model, and adding the currently acquiredimage pair to the 3D model at the registered location when: a) theregistration succeeds and b) a delta of the registered image pairexceeds a threshold; rendering the incremental construction of the 3Dmodel on a display; and concurrently, with the sequential imageacquisition, tracking the incremental construction of the 3D model bydisplaying a tracking graphic indicator on the rendition of theincremental construction of the 3D model that simultaneously indicates:i) the registered location, ii) when the viewing distance is within afocal range of the camera, and iii) when the viewing distance is notwithin a focal range of the camera.
 30. The method of claim 29, furthercomprising adjusting the position of the camera in response to thetracking.
 31. The method of claim 30, wherein adjusting the positioncomprises adjusting any of a scanning region, a distance between thecamera and the surface, and a scanning speed.
 32. The method accordingto claim 29, further comprising indicating on the rendition of theincremental construction a comparison between a viewing distance of thecurrently acquired image pair and an optimal viewing distance, andwherein adjusting comprises adjusting the distance according to theindicated comparison.
 33. The method of claim 30, wherein the trackingfurther comprises indicating when the registration succeeds and when theregistration fails, the method further comprising, responsive to theindication that the registration failed, maneuvering the camera to allowrelocking the image acquisition onto the 3D model construction.
 34. Themethod of claim 33, further comprising indicating a new registrationlocation on the 3D model, and adjusting the viewing distance of thecamera in accordance with the new registration location.
 35. The methodaccording to claim 29, further comprising retrieving a previouslyconstructed 3D model from a memory, wherein registering the currentlyacquired image pair comprises registering to a location on the retrievedpreviously constructed 3D model, and wherein adding the currentlyacquired image pair at the registered location comprises adding thecurrently acquired image pair to the previously constructed 3D model.36. The method of claim 35, wherein registering to a location on theretrieved previously constructed 3D model comprises registering to alocation indicated via a user interface.